Storage caches are widely used in storage systems for improving input/output (I/O) latency and I/O throughput. In a virtualized environment, these storage caches are configured at a size on the order of gigabytes or terabytes to be large enough to hold most of the corresponding virtual machine (VM) I/O requests. When a VM is migrated from one host to another, however, the handling of such a large a cache is complicated. If the cache is discarded and only the VM is migrated, the VM will suffer a loss of performance following the migration and the large cache will take a long time to repopulate with I/O data. If the whole cache is migrated with VM, the migration time will be prolonged dramatically due to the large size of the cache. Additionally, the network bandwidth will be consistency consumed for an extended period of time when the whole cache is migrated.